//package com.plian.system.service.pm.property;
//
//import com.plian.Tools.pagedata.PageData;
//import com.plian.system.dao.bt.baseinfo.BaseInfoDao;
//import com.plian.system.dao.pm.property.PropertyDao;
//import com.plian.system.model.CommonCode;
//import com.plian.system.model.ListResult;
//import com.plian.system.service.sys.orgzation.OrgzationService;
//import lombok.extern.slf4j.Slf4j;
//import org.apache.commons.lang.exception.ExceptionUtils;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Service;
//
//import java.math.BigDecimal;
//import java.text.NumberFormat;
//import java.util.ArrayList;
//import java.util.List;
//
///**
// * @author huzb
// * @create 2020-10-22 14:08
// */
//@Slf4j
//@Service
//public class PropertyEnService {
//    @Autowired
//    PropertyDao propertyDao;
//    @Autowired
//    BaseInfoDao baseInfoDao;
//    @Autowired
//    PropertyRecordService propertyRecordService;
//    @Autowired
//    OrgzationService orgzationService;
//    @Autowired
//    PropertyEnService propertyEnService;
//
//    public ListResult findById(PageData pd){
//        List<PageData> pageData1 = new ArrayList<>();
//        String SUM = "";
//        try {
//            String functionalClassification1 = pd.getString("functionalClassification");
//            if ("".equals(functionalClassification1)){
//                functionalClassification1 = "04300%";
//                pd.put("functionalClassification","04300%");
//            }
//            String id = pd.getString("id");
//            String[] split1 = id.split(",");
//            String[] split2 = functionalClassification1.split(",");
//            BigDecimal SUM_ZCZE = new BigDecimal("0");
//            BigDecimal SUM_JIN = new BigDecimal("0");
//            BigDecimal SUM_YYZSLR = new BigDecimal("0");
//            BigDecimal SUM_LRZE = new BigDecimal("0");
//            for (int q = 0;q<split1.length;q++){
//                PageData pageData2 = new PageData();
//                pageData2.put("id",split1[q]);
//                for (int i = 0;i<split2.length;i++){
//                    pageData2.put("functionalClassification",split2[i]);
//                    PageData findbyid = propertyDao.listByid(pageData2);
//                    PageData findbyid2 = propertyDao.listidByorg(pageData2);
//                    if (findbyid != null){
//                        PageData pageData = new PageData();
//                        String propertyid = findbyid2.getString("id");
//                        PageData pageData3 = new PageData();
//                        pageData3.put("id",propertyid);
//                        pageData3.put("date","2020-10-22");
//                        PageData pageData4 = propertyRecordService.treeDate(pageData3);
//                        List<PageData> tree = (ArrayList<PageData>)pageData4.get("tree");
//                        String contributors = tree.get(0).getString("contributors");
//                        pageData.put("id",findbyid.getString("id"));
//                        pageData.put("orgName",findbyid.getString("orgName"));
//                        pageData.put("contributors",contributors);
//                        //企业层级
//                        String orgGradation = findbyid.getString("orgGradation");
//                        pageData.put("orgGradation",baseInfoDao.findnamebycode(orgGradation).getString("NAME"));
//                        //主要行业，可能有多个
//                        String majorIndustries = findbyid.getString("majorIndustries");
//                        String[] split = majorIndustries.split(",");
//                        String major = "";
//                        for (int j=0;j<split.length;j++){
//                            major =  baseInfoDao.findnamebycode(split[j]).getString("NAME")+ ","+ major ;
//                        }
//                        if ("".equals(major)){
//                            pageData.put("majorIndustries",major);
//                        }else {
//                            major = major.substring(0, major.length() -1);
//                            pageData.put("majorIndustries",major);
//                        }
//                        //企业类别
//                        String orgCategory = findbyid.getString("orgCategory");
//                        if (orgCategory == null){
//                            pageData.put("orgCategory",orgCategory);
//                        }else {
//                            pageData.put("orgCategory",baseInfoDao.findnamebycode(orgCategory).getString("NAME"));
//                        }
//                        //所属集团
//                        String subordinateToGroup = findbyid.getString("subordinateToGroup");
//                        if (subordinateToGroup == null){
//                            pageData.put("subordinateToGroup",subordinateToGroup);
//                        }else {
//                            pageData.put("subordinateToGroup",baseInfoDao.findnamebycode(subordinateToGroup).getString("NAME"));
//                        }
//                        //功能分类
//                        String functionalClassification = findbyid.getString("functionalClassification");
//                        if (functionalClassification == null){
//                            pageData.put("functionalClassification",functionalClassification);
//                        }else {
//                            pageData.put("functionalClassification",baseInfoDao.findnamebycode(functionalClassification).getString("NAME"));
//                        }
//                        //资产总额
//                        String LAST_ZCZE = findbyid.getString("LAST_ZCZE");
//                        pageData.put("LAST_ZCZE",LAST_ZCZE);
//                        if (LAST_ZCZE != null){
//                            BigDecimal BIG_ZCZE = new BigDecimal(LAST_ZCZE);
//                            SUM_ZCZE = SUM_ZCZE.add(BIG_ZCZE);
//                        }
//                        //净资产总额(资产总额-负债总额)
//                        String JIN_ZCZE = findbyid.getString("JIN_ZCZE");
//                        pageData.put("JIN_ZCZE",JIN_ZCZE);
//                        if (JIN_ZCZE != null){
//                            BigDecimal BIG_JIN = new BigDecimal(JIN_ZCZE);
//                            SUM_JIN = SUM_JIN.add(BIG_JIN);
//                        }
//                        //营业收入
//                        String LAST_YYZSLR = findbyid.getString("LAST_YYZSLR");
//                        pageData.put("LAST_YYZSLR",LAST_YYZSLR);
//                        if (LAST_YYZSLR != null){
//                            BigDecimal BIG_YYZSLR = new BigDecimal(LAST_YYZSLR);
//                            SUM_YYZSLR = SUM_YYZSLR.add(BIG_YYZSLR);
//                        }
//                        //利润总额
//                        String LAST_LRZE = findbyid.getString("LAST_LRZE");
//                        pageData.put("LAST_LRZE",LAST_LRZE);
//                        if (LAST_LRZE != null){
//                            BigDecimal BIG_LRZE = new BigDecimal(LAST_LRZE);
//                            SUM_LRZE = SUM_LRZE.add(BIG_LRZE);
//                        }
//                        pageData1.add(pageData);
//                    }
//                }
//            }
//            PageData sumpd = new PageData();
//            sumpd.put("orgCategory",null);
//            sumpd.put("subordinateToGroup",null);
//            sumpd.put("LAST_LRZE",SUM_LRZE.toString());
//            sumpd.put("orgName","总计");
//            sumpd.put("LAST_ZCZE",SUM_ZCZE.toString());
//            sumpd.put("majorIndustries",null);
//            sumpd.put("LAST_YYZSLR",SUM_YYZSLR.toString());
//            sumpd.put("JIN_ZCZE",SUM_JIN.toString());
//            sumpd.put("orgGradation",null);
//            sumpd.put("functionalClassification",null);
//            sumpd.put("id",null);
//            sumpd.put("contributors",null);
//            //合计
//            pageData1.add(sumpd);
//                   } catch (Exception e) {
//            log.error(ExceptionUtils.getFullStackTrace(e));
//        }
//        //LAST_ZCZE JIN_ZCZE    LAST_YYZSLR LAST_LRZE
//
//        ListResult listResult;
//        listResult=new ListResult(CommonCode.SUCCESS);
//        listResult.setList(pageData1);
//        listResult.setRemark(SUM);
//        return listResult;
//    }
//
//    public ListResult findAll(){
//        PageData pd = new PageData();
//        PageData typesum = new PageData();
//        ArrayList<PageData> pdlist = new ArrayList<>();
//        BigDecimal SUM_ZCZE =new BigDecimal("0");
//        BigDecimal SUM_JIN =new BigDecimal("0");
//        BigDecimal SUM_YYZSLR =new BigDecimal("0");
//        BigDecimal SUM_LRZE =new BigDecimal("0");
//        try {
//            //获取子集id
//            List<String> ids = orgzationService.getSubordinateIds();
//            pd.put("functionalClassification","04300%");
//            PageData typea = propertyEnService.Getamount(ids, pd, "043001");
//            PageData typeb = propertyEnService.Getamount(ids, pd, "043002");
//            PageData typec = propertyEnService.Getamount(ids, pd, "043003");
//            typesum.put("type","合计");
//            typesum.put("percentage","100%");
//            typesum.put("amount",(typea.getInteger("amount")+typeb.getInteger("amount")+typec.getInteger("amount")) + "");
//            if (typea.getString("SUM_ZCZE")!=null){
//                BigDecimal BIG_ZCZE = new BigDecimal(typea.getString("SUM_ZCZE"));
//                SUM_ZCZE = SUM_ZCZE.add(BIG_ZCZE);
//            }
//            if (typeb.getString("SUM_ZCZE")!=null){
//                BigDecimal BIG_ZCZE = new BigDecimal(typeb.getString("SUM_ZCZE"));
//                SUM_ZCZE = SUM_ZCZE.add(BIG_ZCZE);
//            }
//            if (typec.getString("SUM_ZCZE")!=null){
//                BigDecimal BIG_ZCZE = new BigDecimal(typec.getString("SUM_ZCZE"));
//                SUM_ZCZE = SUM_ZCZE.add(BIG_ZCZE);
//            }
//            typesum.put("SUM_ZCZE",SUM_ZCZE+"");
//
//            if (typea.getString("SUM_JIN")!=null){
//                BigDecimal BIG_JIN = new BigDecimal(typea.getString("SUM_JIN"));
//                SUM_JIN = SUM_JIN.add(BIG_JIN);
//            }
//            if (typeb.getString("SUM_JIN")!=null){
//                BigDecimal BIG_JIN = new BigDecimal(typeb.getString("SUM_JIN"));
//                SUM_JIN = SUM_JIN.add(BIG_JIN);
//            }
//            if (typec.getString("SUM_JIN")!=null){
//                BigDecimal BIG_JIN = new BigDecimal(typec.getString("SUM_JIN"));
//                SUM_JIN = SUM_JIN.add(BIG_JIN);
//            }
//            typesum.put("SUM_JIN",SUM_JIN+"");
//
//            if (typea.getString("SUM_YYZSLR")!=null){
//                BigDecimal BIG_YYZSLR = new BigDecimal(typea.getString("SUM_YYZSLR"));
//                SUM_YYZSLR = SUM_YYZSLR.add(BIG_YYZSLR);
//            }
//            if (typeb.getString("SUM_JIN")!=null){
//                BigDecimal BIG_YYZSLR = new BigDecimal(typeb.getString("SUM_YYZSLR"));
//                SUM_YYZSLR = SUM_YYZSLR.add(BIG_YYZSLR);
//            }
//            if (typec.getString("SUM_JIN")!=null){
//                BigDecimal BIG_YYZSLR = new BigDecimal(typec.getString("SUM_YYZSLR"));
//                SUM_YYZSLR = SUM_YYZSLR.add(BIG_YYZSLR);
//            }
//            typesum.put("SUM_YYZSLR",SUM_YYZSLR+"");
//
//            if (typea.getString("SUM_LRZE")!=null){
//                BigDecimal BIG_LRZE = new BigDecimal(typea.getString("SUM_LRZE"));
//                SUM_LRZE = SUM_LRZE.add(BIG_LRZE);
//            }
//            if (typeb.getString("SUM_JIN")!=null){
//                BigDecimal BIG_LRZE = new BigDecimal(typeb.getString("SUM_LRZE"));
//                SUM_LRZE = SUM_LRZE.add(BIG_LRZE);
//            }
//            if (typec.getString("SUM_JIN")!=null){
//                BigDecimal BIG_LRZE = new BigDecimal(typec.getString("SUM_LRZE"));
//                SUM_LRZE = SUM_LRZE.add(BIG_LRZE);
//            }
//            typesum.put("SUM_LRZE",SUM_LRZE+"");
//            pdlist.add(typea);
//            pdlist.add(typeb);
//            pdlist.add(typec);
//            pdlist.add(typesum);
//
//        } catch (Exception e) {
//            log.error(ExceptionUtils.getFullStackTrace(e));
//        }
//        ListResult listResult;
//        listResult=new ListResult(CommonCode.SUCCESS);
//        listResult.setList(pdlist);
//        return  listResult;
//    }
//
//    public PageData Getamount(List<String> ids,PageData pd,String type){
//        PageData Outpd = new PageData();
//        Integer amount = 0;
//        Integer sum = 0;
//        BigDecimal SUM_ZCZE = new BigDecimal("0");
//        BigDecimal SUM_JIN = new BigDecimal("0");
//        BigDecimal SUM_YYZSLR = new BigDecimal("0");
//        BigDecimal SUM_LRZE = new BigDecimal("0");
//        for (String id:ids){
//            pd.put("id",id);
//            PageData pageData = null;
//            try {
//                pageData = propertyDao.listByid(pd);
//            } catch (Exception e) {
//                log.error(ExceptionUtils.getFullStackTrace(e));
//            }
//            if (pageData != null){
//                String functionalClassification = pageData.getString("functionalClassification");
//                if (type.equals(functionalClassification)){
//                    amount = amount+1;
//                    String LAST_ZCZE = pageData.getString("LAST_ZCZE");
//                    if (LAST_ZCZE != null){
//                        BigDecimal BIG_ZCZE = new BigDecimal(LAST_ZCZE);
//                        SUM_ZCZE = SUM_ZCZE.add(BIG_ZCZE);
//                    }
//
//                    String JIN_ZCZE = pageData.getString("JIN_ZCZE");
//                    if (JIN_ZCZE != null){
//                        BigDecimal Big_JIN = new BigDecimal(JIN_ZCZE);
//                        SUM_JIN = SUM_JIN.add(Big_JIN);
//                    }
//
//                    String LAST_YYZSLR = pageData.getString("LAST_YYZSLR");
//                    if (LAST_YYZSLR != null){
//                        BigDecimal Big_YYZSLR = new BigDecimal(LAST_YYZSLR);
//                        SUM_YYZSLR = SUM_YYZSLR.add(Big_YYZSLR);
//                    }
//
//                    String LAST_LRZE = pageData.getString("LAST_LRZE");
//                    if (LAST_ZCZE != null){
//                        BigDecimal Big_LRZE = new BigDecimal(LAST_LRZE);
//                        SUM_LRZE = SUM_LRZE.add(Big_LRZE);
//                    }
//                }
//                sum = sum + 1;
//            }
//        }
//        if ("043001".equals(type)){
//            Outpd.put("type","功能类");
//        }else if ("043002".equals(type)){
//            Outpd.put("type","竞争类");
//        }else {
//            Outpd.put("type","公共服务类");
//        }
//        Outpd.put("amount",amount);
//        // 创建一个数值格式化对象
//        NumberFormat numberFormat = NumberFormat.getInstance();
//        // 设置精确到小数点后2位
//        numberFormat.setMaximumFractionDigits(2);
//        String result = numberFormat.format((float)amount/ (float)sum* 100);//所占百分比
//        Outpd.put("percentage",result+ "%");
//        Outpd.put("SUM_ZCZE",SUM_ZCZE+"");
//        Outpd.put("SUM_JIN",SUM_JIN+"");
//        Outpd.put("SUM_YYZSLR",SUM_YYZSLR+"");
//        Outpd.put("SUM_LRZE",SUM_LRZE+"");
//        return Outpd;
//    }
//
//}
